//package com.ia.aistream.manager.dxfcomponent.util;
//
//import com.aspose.cad.Color;
//import com.aspose.cad.Image;
//import com.aspose.cad.fileformats.cad.CadImage;
//import com.aspose.cad.imageoptions.CadRasterizationOptions;
//import com.aspose.cad.imageoptions.JpegOptions;
//import com.aspose.cad.imageoptions.PdfOptions;
//import org.kabeja.batik.tools.SAXPDFSerializer;
//import org.kabeja.batik.tools.SAXPNGSerializer;
//import org.kabeja.dxf.DXFDocument;
//import org.kabeja.parser.Parser;
//import org.kabeja.parser.ParserBuilder;
//import org.kabeja.svg.SVGGenerator;
//import org.kabeja.xml.SAXGenerator;
//import org.kabeja.xml.SAXSerializer;
//
//import java.io.*;
//import java.net.HttpURLConnection;
//import java.net.URL;
//import java.net.URLConnection;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * 实现将dwg格式的文件转化为img文件或者PDF文件
// * @Author xiaoyu
// * @create 2020/12/7 14:02
// */
//public class CadFileUtil {
//
//    /**
//     * 当前cad预览运行状态（保证cad预览线程，同步只有一个人操作）
//     */
//    public static volatile  boolean RUNNING = false;
//
//    /***
//     * 将dxf文件转化为Img文件
//     * @param filePath
//     * @return
//     */
//    public synchronized static String dxfToImages(String filePath, String x, String y) throws Exception {
//
//            // 声明保存PDF文件路径的位置
//            String imgName = filePath.replace(".dxf", "java.png");
//            Parser dxfParser = ParserBuilder.createDefaultParser();
//            dxfParser.parse(new FileInputStream(filePath),"UTF-8");
//            DXFDocument doc = dxfParser.getDocument();
//
//            SAXGenerator generator = new SVGGenerator();
//            SAXSerializer out = new SAXPNGSerializer();
//            Map map = new HashMap();
//            map.put("width", x);
//            map.put("height", y);
//
//            //转换所得的文件
//            OutputStream fileO = new FileOutputStream(imgName);
//            out.setOutput(fileO);
//            // 生成文件
//            generator.generate(doc, out, map);
//
//            return imgName;
//    }
//
//    /**
//     *方法描述  CAD文件转换为PDF流
//     * @param srcFile 选择CAD文件路径
//     * @param dataDir 保存pdf文件路径
//     * @author Tarzan Liu
//     * @date 2020年01月08日 15:08:50
//     */
//    public static void cadFileToPDF(String srcFile,String dataDir){
//        Image objImage = Image.load(srcFile);
//        CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
//        cadRasterizationOptions.setBackgroundColor(Color.getWhite());
//        cadRasterizationOptions.setPageWidth(1600);
//        cadRasterizationOptions.setPageHeight(1600);
//        PdfOptions pdfOptions = new PdfOptions();
//        pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
//        objImage.save(dataDir + System.currentTimeMillis()+".pdf", pdfOptions);
//    }
//
//    /****
//     * 方法描述  dwg文件转换为images
//     * @param srcFile
//     * @return
//     */
//    public synchronized static String cadFileToImage(String srcFile, float x, float y){
//
//        //创建文件处理对象
//        CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
//        cadRasterizationOptions.setBackgroundColor(Color.getWhite());
//        cadRasterizationOptions.setPageWidth(x);
//        cadRasterizationOptions.setPageHeight(y);
//        JpegOptions jpegOptions = new JpegOptions();
//        jpegOptions.setVectorRasterizationOptions(cadRasterizationOptions);
//
//        //截取文件名称
//        String newFileName = srcFile.substring(0, srcFile.lastIndexOf(".")) + ".jpg";
//
//        Image objImage = Image.load(srcFile);
//        //处理上传后的文件名
//        objImage.save(newFileName, jpegOptions);
//        return newFileName;
//    }
//
//    /***
//     * 方法描述 dwg文件转化为dxf文件
//     * @param srcFile
//     * @return
//     */
//    public static String dwgToDxf(String srcFile){
//        String outFile = srcFile.substring(0, srcFile.lastIndexOf(".")) + ".dxf";
//        CadImage cadImage = (CadImage)Image.load(srcFile);
//
//        cadImage.save(outFile);
//        return outFile;
//    }
//
//    /**
//     * 方法描述  CAD文件转换为PDF流
//     * @param inputStream 选择CAD文件流
//     * @author Tarzan Liu
//     * @date 2020年01月08日 15:08:50
//     */
//    public static InputStream cadFileToPdf(InputStream inputStream) throws Exception {
//        RUNNING = true;
//        Image image = Image.load(inputStream);
//        CadRasterizationOptions cadRasterizationOptions = new CadRasterizationOptions();
//        cadRasterizationOptions.setBackgroundColor(Color.getWhite());
//        cadRasterizationOptions.setPageWidth(4500);
//        cadRasterizationOptions.setPageHeight(4500);
//        PdfOptions pdfOptions = new PdfOptions();
//        pdfOptions.setVectorRasterizationOptions(cadRasterizationOptions);
//        ByteArrayOutputStream out = new ByteArrayOutputStream();
//        image.save(out,pdfOptions);
//        return  outputStreamConvertInputStream(out);
//    }
//
//    /**
//     * 方法描述  CAD文件转换为PDF(处理网络文件)
//     *
//     * @param netFileUrl 网络文件路径
//     * @return InputStream 转换后文件输入流
//     * @author Tarzan Liu
//     * @date 2020年01月08日 15:08:50
//     */
//    public static InputStream convertNetFile(String netFileUrl) throws Exception {
//        // 创建URL
//        URL url = new URL(netFileUrl);
//        // 试图连接并取得返回状态码
//        URLConnection urlConnection = url.openConnection();
//        urlConnection.connect();
//        HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;
//        int httpResult = httpURLConnection.getResponseCode();
//        if (httpResult == HttpURLConnection.HTTP_OK) {
//            return httpURLConnection.getInputStream();
//        }
//        return null;
//    }
//
//    /**
//     * 方法描述 outputStream转inputStream
//     * @param out
//     * @author Tarzan Liu
//     * @date 2020年01月08日 15:08:50
//     */
//    public static ByteArrayInputStream outputStreamConvertInputStream(final OutputStream out) throws Exception {
//        ByteArrayOutputStream byteOut=(ByteArrayOutputStream) out;
//        return new ByteArrayInputStream(byteOut.toByteArray());
//    }
//
//}
